home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / BASIC / 0006.ZIP / SCROLL.DOC < prev    next >
Text File  |  1983-03-26  |  5KB  |  130 lines

  1. .FO SCROLL.DOC #
  2. E
  3.      SCROLL.BLD (CONVERT WITH SCROLL.BAS TO SCROLL.BLD)
  4.      ==================================================
  5.  
  6.  
  7. THIS IS AN ASSY. LANG. SUBROUTINE TO BE USED WITH A BASIC PROGRAM TO PERFORM  
  8. SCROLLING OF THE SCREEN IN A SPECIFIED WINDOW.  THE SUBROUTINE WILL SCROLL
  9. THE CONTENTS OF THE WINDOW UP OR DOWN FILLING IN WITH A BLANK LINE OF 
  10. SPECIFIED ATTRIBUTE (I.E., BLACK, WHITE, RED, ETC...)
  11. THE ROUTINE CAN ALSO BE USED TO CLEAR THE WINDOW
  12. THE ARGUMENTS FOR THE CALL TO THE ROUTINE ARE:
  13.         ULR% - ROW NUMBER (1-25) OF UPPER LEFT CORNER OF WINDOW
  14.         ULC% - COL NUMBER (1-80) OF UPPER LEFT CORNER OF WINDOW
  15.         LRR% - ROW NUMBER (1-25) OF LOWER RIGHT CORNER
  16.         LRC% - COL NUMBER (1-80) OF LOWER RIGHT CORNER
  17.         ATTR% - ATTRIBUTE OF BLANKED LINE: &H07=NORMAL, &H70=REVERSE
  18.                 SEE TECH. REF. MANUAL PG. 2-51 FOR OTHERS
  19.                 NOTE - YOU CAN USE 0 (INSTEAD OF 7) AS THE ATTRIBUTE FOR TEXT
  20.                        AND GRAPHICS MODE TO GET BLACK BACKGROUND. TRY 7
  21.                        IN HI-RES GRAPHICS (SCREEN 2)...EVER SEE THAT
  22.                        WHEN YOU WENT BACK TO DOS FROM GRAPHICS MODE?
  23.         LNGTH% - NUMBER OF LINES TO SCROLL (0 BLANKS ENTIRE WINDOW)
  24.                  USE + NUMBER TO SCROLL UP
  25.                  USE - NUMBER TO SCROLL DOWN
  26.         NOTE !! -  THE ARGUMENTS ARE NOT VALUE CHECKED.
  27.  
  28. FROM BASIC: CALL SCROLL(ULR%,ULC%,LRR%,LRC%,ATTR%,LNGHT%)
  29.  
  30. PROGRAM BY: LEE M. BUCK
  31. DATE: 3-16-83
  32.  
  33.  
  34. THE PROGRAM IS LOADED USING THE BLOAD COMMAND.  BELOW ARE TWO SAMPLE PROGRAMS
  35. THAT USE THE ROUTINE.  ONE USES A STRING VARIABLE WITHIN THE BASIC WORK SPACE
  36. TO HOLD THE MACHINE LANGUAGE PROGRAM.  THE OTHER RESERVES A FIXED SECTION OF 
  37. MEMORY AT THE HIGH MEMORY AREA OF YOUR MACHINE - THIS REQUIRES USE OF THE 
  38. BASIC 'CLEAR' COMMAND OR /M OPTION WHEN RUNNING BASIC IN A 64 K MACHINE
  39.  
  40. MAKE A COPY OF THIS .DOC FILE THEN EDLIN IT TO SEPARATE OUT THE TWO SAMPLE
  41. PROGRAMS BELOW.
  42.  
  43.  
  44. SAMPLE PROGRAM 1
  45.  
  46.  
  47. 10 'TEST PROGRAM FOR SCROLL ROUTINE
  48. 20 'USING STRING SPACE IN BASIC PROGRAM
  49. 25 ' PROGRAM BY: LEE M. BUCK   --  3/17/83
  50. 30 CLEAR        'JUST CLEARS MEMORY - MACHINE LANG. PGM. WILL BE LOCATED
  51. 35              'INSIDE BASIC WORKSPACE
  52. 40 CLS: KEY OFF
  53. 50 '
  54. 60 SCROLLPGM$=STRING$(&H39,"0")         'SET UP STRING SPACE TO HOLD PGM
  55. 70                                      '&H39 IS SIZE OF MACHINE CODE PGM
  56. 80 DEF SEG=VARPTR(SCROLLPGM$)           'GET THE SEGMENT LOCATIONè90 BLOAD "SCROLL.BLD",0       'LOAD INTO STRING (BE SURE TO INCLUDE 0 OFFSET)
  57. 100 '
  58. 110 ' FILL THE SCREEN WITH SOMETHING
  59. 120 FOR ROW=1 TO 22
  60. 130 FOR COL=1 TO 79
  61. 140 PRINT CHR$(ROW+64);
  62. 150 NEXT COL
  63. 160 PRINT
  64. 170 NEXT ROW
  65. 180 'PROMPT FOR SUBROUTINE ARGUMENTS
  66. 190 BEEP
  67. 200 LOCATE 23,1
  68. 210 INPUT "ULR,ULC,LRR,LRC,ATR,LEN";ULR%,ULC%,LRR%,LRC%,ATTR%,LNGTH%
  69. 220 '
  70. 230 DEF SEG=VARPTR(SCROLLPGM$)  'BE SURE SEGMENT IS SET TO STRING SPACE
  71. 240 SCROLL=0    'SET THE OFFSET TO ZERO AND CALL THE PGM
  72. 250 CALL SCROLL(ULR%,ULC%,LRR%,LRC%,ATTR%,LNGTH%)
  73. 260 '
  74. 270 SOUND 500,5: SOUND 700,5: SOUND 1000,5
  75. 280 LOCATE 13,25: PRINT "SUCCESS !!"
  76. 290 'PRESS 'ENTER' TO DO IT AGAIN; 'Esc' TO QUIT
  77. 300 DEF SEG : POKE 106,0
  78. 310 Q$=INKEY$ : IF Q$="" GOTO 310
  79. 320 IF Q$=CHR$(13) THEN 190     'DO IT AGAIN WITH 'CARRIAGE RETURN' KEY PRESS
  80. 330 IF Q$<>CHR$(27) THEN 300    'KEEP WAITING UNTILL 'Esc' KEY PRESS
  81. 340 END
  82.  
  83.  
  84. SAMPLE PROGRAM 2
  85.  
  86.  
  87. 10 'TEST PROGRAM FOR SCROLL ROUTINE
  88. 20 'PROGRAM BY: LEE M. BUCK    --   3/17/83
  89. 30 'PUT THE ROUTINE AS HIGH AS POSSIBLE IN MEMORY
  90. 40 'IF TOTAL MEMORY IS 64K OR LESS SPACE MUST BE RESERVED WITHIN BASIC WORK
  91. 50 'AREA.  RESERVE SPACE USING THE 'CLEAR' COMMAND AT THE BEGINNING OF PGM.
  92. 60 'OR USE THE /M OPTION WHEN STARTING BASIC(A). (SEE THE BASIC MANUAL)
  93. 70 CLS: KEY OFF
  94. 80 ' PUT SOMETHING ON THE SCREEN
  95. 90 FOR ROW=1 TO 22
  96. 100 FOR COL=1 TO 79
  97. 110 PRINT CHR$(ROW+64);
  98. 120 NEXT COL
  99. 130 PRINT
  100. 140 NEXT ROW
  101. 150 '
  102. 160 'CALCULATE THE SEGMENT REQUIRED TO PUT ROUTINE AT HIGH MEMORY LOCATION
  103. 170 '
  104. 180 PGM.SIZE=&H39        'SIZE OF MACHINE LANGUAGE PROGRAM
  105. 190 MEM.SIZE=160         'TOTAL K's OF MACHINE MEMORY (LESS RAMDISK MEMORY)
  106. 200 SEGMENT=MEM.SIZE*64-CINT(PGM.SIZE/16)
  107. 210 '
  108. 220 DEF SEG=SEGMENT    'SET SEGMENT AT HIGH MEMORY LOCATION
  109. 230 '
  110. 240 'LOAD THE SUBROUTINE INTO MEMORY.  IT ONLY NEEDS TO BE DONE ONCE.è250 BLOAD "SCROLL.BLD",0   'BE SURE TO SET THE OFFSET TO ZERO
  111. 260 '
  112. 270 'GET THE SUBROUTINE PARAMETERS
  113. 280 BEEP
  114. 290 LOCATE 23,1
  115. 300 INPUT "ULR,ULC,LRR,LRC,ATR,LEN";ULR%,ULC%,LRR%,LRC%,ATTR%,LNGTH%
  116. 310 '
  117. 320 ' CALL THE SUBROUTINE
  118. 330 DEF SEG=SEGMENT     'MAKE SURE SEGMENT IS SET
  119. 340 SCROLL=0            'SET THE OFFSET
  120. 350 CALL SCROLL(ULR%,ULC%,LRR%,LRC%,ATTR%,LNGTH%)
  121. 360 '
  122. 370 SOUND 500,5: SOUND 700,5: SOUND 1000,5
  123. 380 LOCATE 12,25: PRINT " SUCCESS !! "
  124. 390 'PRESS 'ENTER' TO DO IT AGAIN; 'Esc' TO QUIT
  125. 400 DEF SEG : POKE 106,0
  126. 410 Q$=INKEY$ : IF Q$="" GOTO 410
  127. 420 IF Q$=CHR$(13) THEN 280     'DO IT AGAIN WITH 'CARRIAGE RETURN' KEY PRESS
  128. 430 IF Q$<>CHR$(27) THEN 400    'KEEP WAITING UNTILL 'Esc' KEY PRESS
  129. 440 END
  130. N